package com.syh.jn.scm.domain.supplier.repository.base.downstream;

import cn.redscarf.commons.wrapper.Wrapper;
import com.syh.core.ddd.infrastructure.repository.AggregateRepository;
import com.syh.jn.scm.domain.supplier.entity.base.downstream.DownstreamPriceTemplate;
import com.syh.jn.scm.domain.supplier.entity.base.downstream.DownstreamPriceTmplDetail;

import java.util.List;

public interface DownstreamPriceTemplateRepository extends DownstreamPriceTemplateReadRepository,AggregateRepository<DownstreamPriceTemplate, Long> {

  /**
   * 批量添加客户报价商品
   *
   * @param details
   */
  void batchSaveDownstreamPriceTmplDetail(List<DownstreamPriceTmplDetail> details);

  /**
   * 批量修改客户报价商品
   *
   * @param details
   */
  void batchUpdateDownstreamPriceTmplDetail(List<DownstreamPriceTmplDetail> details);

  /**
   * 删除客户报价商品
   *
   * @param detail
   */
  void deleteDownstreamPriceTmplDetail(DownstreamPriceTmplDetail detail);

  /**
   * 根据id查询车型客户报价商品
   *
   * @param quotationId
   * @return
   */
  DownstreamPriceTmplDetail getByQuotationId(Long quotationId);

  /**
   * 根据条件查询列表
   *
   * @param wrapper
   * @param startRow
   * @param count
   * @return
   */
  List<DownstreamPriceTmplDetail> findQuotationListPage(Wrapper wrapper, Integer startRow, Integer count);

  /**
   * 根据商品id和模板id拿到商品模板
   *
   * @param id
   * @param templateId
   * @return
   */
  Boolean getByGoodsId(Long id,Long templateId);

  /**
   *  根据参数字段查看是否已经被报价模板引用
   *
   * @param column
   * @param id
   * @return
   */
  public boolean downstreamPriceTmplDetailExistsByColumn(String column,Long id);
}
